package com.atguigu.staservice.schedule;

import com.atguigu.staservice.service.StatisticsDailyService;
import com.atguigu.staservice.utils.DateUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.util.Date;

@Component
public class ScheduledTask {
    @Autowired
    private StatisticsDailyService staService;

    // 0/5 * * * * ?表示每隔5秒执行一次这个方法
    // cron —— 七子表达式
    // 包含了7个字段，分别是秒，分，时，日，月，周，年
    // 注意 springBoot只支持6位表达式 7位不支持 因为默认的年就是当前的这一年
    @Scheduled(cron = "0 0/10 * * * ?")
    public void task1() {
        System.out.println("task1 activated : " + new Date());
    }

    // 在每天凌晨1点，把前一天数据进行数据查询添加
    // 这里需要使用特定工具类DateUtil 获取到当前日期的前一天
    @Scheduled(cron = "0 0 1 * * ?")
    public void task2() {
        staService.registerCount(DateUtil.formatDate(DateUtil.addDays(new Date(), -1)));
    }
}
